[INFO] cloning repository https://github.com/qiu7824/zsclip
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/qiu7824/zsclip" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqiu7824%2Fzsclip", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqiu7824%2Fzsclip'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0cabd254aad68e2d9c7d72d68848b1f19a723c37
[INFO] checking qiu7824/zsclip against master#f28ac764c36004fa6a6e098d15b4016a838c13c6 for pr-158320
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqiu7824%2Fzsclip" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/qiu7824/zsclip
[INFO] finished tweaking git repo https://github.com/qiu7824/zsclip
[INFO] tweaked toml for git repo https://github.com/qiu7824/zsclip written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/qiu7824/zsclip on toolchain f28ac764c36004fa6a6e098d15b4016a838c13c6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f28ac764c36004fa6a6e098d15b4016a838c13c6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/qiu7824/zsclip already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f28ac764c36004fa6a6e098d15b4016a838c13c6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded md5 v0.7.0
[INFO] [stderr]   Downloaded zvariant_utils v3.4.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.125
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.125
[INFO] [stderr]   Downloaded pastey v0.2.3
[INFO] [stderr]   Downloaded system-deps v7.0.8
[INFO] [stderr]   Downloaded zvariant_derive v5.12.0
[INFO] [stderr]   Downloaded gdk-pixbuf-sys v0.22.0
[INFO] [stderr]   Downloaded cairo-sys-rs v0.22.0
[INFO] [stderr]   Downloaded zvariant v5.12.0
[INFO] [stderr]   Downloaded zbus v5.16.0
[INFO] [stderr]   Downloaded pango-sys v0.22.0
[INFO] [stderr]   Downloaded gobject-sys v0.22.6
[INFO] [stderr]   Downloaded gdk-pixbuf v0.22.0
[INFO] [stderr]   Downloaded embed-resource v2.5.2
[INFO] [stderr]   Downloaded pango v0.22.6
[INFO] [stderr]   Downloaded gsk4-sys v0.11.1
[INFO] [stderr]   Downloaded gtk4-macros v0.11.0
[INFO] [stderr]   Downloaded graphene-rs v0.22.0
[INFO] [stderr]   Downloaded zbus_macros v5.16.0
[INFO] [stderr]   Downloaded cfg-expr v0.20.8
[INFO] [stderr]   Downloaded graphene-sys v0.22.0
[INFO] [stderr]   Downloaded gsk4 v0.11.1
[INFO] [stderr]   Downloaded keytap v0.4.0
[INFO] [stderr]   Downloaded evdev v0.13.2
[INFO] [stderr]   Downloaded ksni v0.3.5
[INFO] [stderr]   Downloaded glib-sys v0.22.6
[INFO] [stderr]   Downloaded gdk4-sys v0.11.2
[INFO] [stderr]   Downloaded cairo-rs v0.22.0
[INFO] [stderr]   Downloaded uuid v1.23.3
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.125
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.125
[INFO] [stderr]   Downloaded zune-jpeg v0.5.13
[INFO] [stderr]   Downloaded gio-sys v0.22.0
[INFO] [stderr]   Downloaded glib-macros v0.22.6
[INFO] [stderr]   Downloaded gdk4 v0.11.2
[INFO] [stderr]   Downloaded js-sys v0.3.102
[INFO] [stderr]   Downloaded gtk4-sys v0.11.3
[INFO] [stderr]   Downloaded gio v0.22.6
[INFO] [stderr]   Downloaded glib v0.22.7
[INFO] [stderr]   Downloaded gtk4 v0.11.3
[INFO] [stderr]   Downloaded pxfm v0.1.28
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] aad7a4bcad9e7ec050455ba5db7862e4ee4bef5af6ef7ca7ce49740fcb69931d
[INFO] running `Command { std: "docker" "start" "aad7a4bcad9e7ec050455ba5db7862e4ee4bef5af6ef7ca7ce49740fcb69931d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "aad7a4bcad9e7ec050455ba5db7862e4ee4bef5af6ef7ca7ce49740fcb69931d" "/opt/rustwide/cargo-home/bin/cargo" "+f28ac764c36004fa6a6e098d15b4016a838c13c6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aad7a4bcad9e7ec050455ba5db7862e4ee4bef5af6ef7ca7ce49740fcb69931d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "aad7a4bcad9e7ec050455ba5db7862e4ee4bef5af6ef7ca7ce49740fcb69931d" "/opt/rustwide/cargo-home/bin/cargo" "+f28ac764c36004fa6a6e098d15b4016a838c13c6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling target-lexicon v0.13.5
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling version-compare v0.2.1
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]     Checking unicode-ident v1.0.24
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling endi v1.1.1
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]     Checking wyz v0.5.1
[INFO] [stderr]    Compiling field-offset v0.3.6
[INFO] [stderr]     Checking syn v2.0.117
[INFO] [stderr]    Compiling cfg-expr v0.20.8
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]     Checking pxfm v0.1.28
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking bytes v1.12.0
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking fastrand v2.4.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking funty v2.0.0
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking uuid v1.23.3
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]     Checking bitvec v1.0.1
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]    Compiling pastey v0.2.3
[INFO] [stderr]     Checking zip v0.6.6
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling toml_edit v0.25.12+spec-1.1.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking socket2 v0.6.4
[INFO] [stderr]     Checking mio v1.2.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling system-deps v7.0.8
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]     Checking qrcodegen v1.8.0
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling glib-sys v0.22.6
[INFO] [stderr]    Compiling gobject-sys v0.22.6
[INFO] [stderr]    Compiling gio-sys v0.22.0
[INFO] [stderr]    Compiling pango-sys v0.22.0
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.22.0
[INFO] [stderr]    Compiling cairo-sys-rs v0.22.0
[INFO] [stderr]    Compiling graphene-sys v0.22.0
[INFO] [stderr]    Compiling gdk4-sys v0.11.2
[INFO] [stderr]    Compiling gsk4-sys v0.11.1
[INFO] [stderr]    Compiling gtk4-sys v0.11.3
[INFO] [stderr]     Checking evdev v0.13.2
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling glib-macros v0.22.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling gtk4-macros v0.11.0
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking keytap v0.4.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking glib v0.22.7
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking zvariant_utils v3.4.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling zvariant_derive v5.12.0
[INFO] [stderr]    Compiling zvariant v5.12.0
[INFO] [stderr]     Checking rusqlite v0.31.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling embed-resource v2.5.2
[INFO] [stderr]    Compiling zsclip v0.9.9 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking zbus_names v4.3.2
[INFO] [stderr]    Compiling zbus_macros v5.16.0
[INFO] [stderr]     Checking gio v0.22.6
[INFO] [stderr]     Checking cairo-rs v0.22.0
[INFO] [stderr]     Checking graphene-rs v0.22.0
[INFO] [stderr]     Checking zbus v5.16.0
[INFO] [stderr]     Checking ksni v0.3.5
[INFO] [stderr]     Checking pango v0.22.6
[INFO] [stderr]     Checking gdk-pixbuf v0.22.0
[INFO] [stderr]     Checking gdk4 v0.11.2
[INFO] [stderr]     Checking gsk4 v0.11.1
[INFO] [stderr]     Checking gtk4 v0.11.3
[INFO] [stdout] warning: unused import: `timer_protocol::*`
[INFO] [stdout]   --> src/app_core.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub(crate) use timer_protocol::*;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `APP_CORE_API_VERSION`, `NativeHostLaunchMode`, `NativeHostLaunchPlan`, `NativeUiToolkit`, `REQUIRED_MAIN_HOST_EXECUTION_PLAN_KINDS`, `REQUIRED_NATIVE_CONTROL_MAPPER_OPERATIONS`, `REQUIRED_NATIVE_DIALOG_HOST_OPERATIONS`, `REQUIRED_NATIVE_EDIT_TEXT_DIALOG_HOST_OPERATIONS`, `REQUIRED_NATIVE_FILE_DIALOG_HOST_OPERATIONS`, `REQUIRED_NATIVE_IME_HOST_OPERATIONS`, `REQUIRED_NATIVE_MAIL_MERGE_WINDOW_HOST_OPERATIONS`, `REQUIRED_NATIVE_MAIN_SEARCH_CONTROL_HOST_OPERATIONS`, `REQUIRED_NATIVE_MAIN_WINDOW_HOST_OPERATIONS`, `REQUIRED_NATIVE_PASTE_TARGET_HOST_OPERATIONS`, `REQUIRED_NATIVE_POPUP_MENU_HOST_OPERATIONS`, `REQUIRED_NATIVE_SETTINGS_DROPDOWN_HOST_OPERATIONS`, `REQUIRED_NATIVE_SETTINGS_WINDOW_HOST_OPERATIONS`, `REQUIRED_NATIVE_SHELL_OPEN_HOST_OPERATIONS`, `REQUIRED_NATIVE_STYLE_HOST_OPERATIONS`, `REQUIRED_NATIVE_TEXT_CARET_HOST_OPERATIONS`, `REQUIRED_NATIVE_TEXT_INPUT_DIALOG_HOST_OPERATIONS`, `REQUIRED_NATIVE_TRANSIENT_WINDOW_HOST_OPERATIONS`, `REQUIRED_NATIVE_WINDOW_IDENTITY_HOST_OPERATIONS`, `REQUIRED_RENDERER_HOST_OPERATIONS`, `REQUIRED_SETTINGS_CONTROL_HOST_OPERATIONS`, `REQUIRED_STATUS_ITEM_HOST_OPERATIONS`, `REQUIRED_TEXT_LAYOUT_HOST_OPERATIONS`, `REQUIRED_UI_HOST_SURFACES`, and `SHARED_NON_HOST_UI_PROTOCOLS`
[INFO] [stdout]   --> src/linux_app.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     NativeHostLaunchMode, NativeHostLaunchPlan, NativeHostRowAction, NativeHostSearchTextAction,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     NativeUiPlatform, NativeUiToolkit, NativeWindowIdentityHost, NativeWindowToken,
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     StatusMenuEntry, TextLayout, TextRole, TextRun, TextStyle, UiRect, APP_CORE_API_VERSION,
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     REQUIRED_MAIN_HOST_EXECUTION_PLAN_KINDS, REQUIRED_NATIVE_CONTROL_MAPPER_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |     REQUIRED_NATIVE_DIALOG_HOST_OPERATIONS, REQUIRED_NATIVE_EDIT_TEXT_DIALOG_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     REQUIRED_NATIVE_FILE_DIALOG_HOST_OPERATIONS, REQUIRED_NATIVE_IME_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     REQUIRED_NATIVE_MAIL_MERGE_WINDOW_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     REQUIRED_NATIVE_MAIN_SEARCH_CONTROL_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 58 |     REQUIRED_NATIVE_MAIN_WINDOW_HOST_OPERATIONS, REQUIRED_NATIVE_PASTE_TARGET_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     REQUIRED_NATIVE_POPUP_MENU_HOST_OPERATIONS, REQUIRED_NATIVE_SETTINGS_DROPDOWN_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     REQUIRED_NATIVE_SETTINGS_WINDOW_HOST_OPERATIONS, REQUIRED_NATIVE_SHELL_OPEN_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     REQUIRED_NATIVE_STYLE_HOST_OPERATIONS, REQUIRED_NATIVE_TEXT_CARET_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     REQUIRED_NATIVE_TEXT_INPUT_DIALOG_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     REQUIRED_NATIVE_TRANSIENT_WINDOW_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     REQUIRED_NATIVE_WINDOW_IDENTITY_HOST_OPERATIONS, REQUIRED_RENDERER_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 65 |     REQUIRED_SETTINGS_CONTROL_HOST_OPERATIONS, REQUIRED_STATUS_ITEM_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 66 |     REQUIRED_TEXT_LAYOUT_HOST_OPERATIONS, REQUIRED_UI_HOST_SURFACES, SHARED_NON_HOST_UI_PROTOCOLS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NativeComponentAction` and `NativeHostSettingsPlatformAction`
[INFO] [stdout]   --> src/linux_native_host.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         NativeComponentAction, NativeDialogResponse, NativeHostClipKindIcon,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |         NativeHostSettingsPlatformAction, NativeHostVvPasteExecution, NativeHostVvTriggerAction,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NativeHostLaunchMode`, `NativeHostLaunchPlan`, and `NativeUiToolkit`
[INFO] [stdout]   --> src/linux_app.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     NativeHostLaunchMode, NativeHostLaunchPlan, NativeHostRowAction, NativeHostSearchTextAction,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     NativeUiPlatform, NativeUiToolkit, NativeWindowIdentityHost, NativeWindowToken,
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NativeComponentAction` and `NativeHostSettingsPlatformAction`
[INFO] [stdout]   --> src/linux_native_host.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         NativeComponentAction, NativeDialogResponse, NativeHostClipKindIcon,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |         NativeHostSettingsPlatformAction, NativeHostVvPasteExecution, NativeHostVvTriggerAction,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `APP_CORE_API_VERSION`, `NativeHostLaunchMode`, `NativeHostLaunchPlan`, `NativeUiToolkit`, `REQUIRED_MAIN_HOST_EXECUTION_PLAN_KINDS`, `REQUIRED_NATIVE_CONTROL_MAPPER_OPERATIONS`, `REQUIRED_NATIVE_DIALOG_HOST_OPERATIONS`, `REQUIRED_NATIVE_EDIT_TEXT_DIALOG_HOST_OPERATIONS`, `REQUIRED_NATIVE_FILE_DIALOG_HOST_OPERATIONS`, `REQUIRED_NATIVE_IME_HOST_OPERATIONS`, `REQUIRED_NATIVE_MAIL_MERGE_WINDOW_HOST_OPERATIONS`, `REQUIRED_NATIVE_MAIN_SEARCH_CONTROL_HOST_OPERATIONS`, `REQUIRED_NATIVE_MAIN_WINDOW_HOST_OPERATIONS`, `REQUIRED_NATIVE_PASTE_TARGET_HOST_OPERATIONS`, `REQUIRED_NATIVE_POPUP_MENU_HOST_OPERATIONS`, `REQUIRED_NATIVE_SETTINGS_DROPDOWN_HOST_OPERATIONS`, `REQUIRED_NATIVE_SETTINGS_WINDOW_HOST_OPERATIONS`, `REQUIRED_NATIVE_SHELL_OPEN_HOST_OPERATIONS`, `REQUIRED_NATIVE_STYLE_HOST_OPERATIONS`, `REQUIRED_NATIVE_TEXT_CARET_HOST_OPERATIONS`, `REQUIRED_NATIVE_TEXT_INPUT_DIALOG_HOST_OPERATIONS`, `REQUIRED_NATIVE_TRANSIENT_WINDOW_HOST_OPERATIONS`, `REQUIRED_NATIVE_WINDOW_IDENTITY_HOST_OPERATIONS`, `REQUIRED_RENDERER_HOST_OPERATIONS`, `REQUIRED_SETTINGS_CONTROL_HOST_OPERATIONS`, `REQUIRED_STATUS_ITEM_HOST_OPERATIONS`, `REQUIRED_TEXT_LAYOUT_HOST_OPERATIONS`, `REQUIRED_UI_HOST_SURFACES`, and `SHARED_NON_HOST_UI_PROTOCOLS`
[INFO] [stdout]   --> src/macos_app.rs:22:55
[INFO] [stdout]    |
[INFO] [stdout] 22 |     NativeHostClipboardWrite, NativeHostDialogAction, NativeHostLaunchMode, NativeHostLaunchPlan,
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     NativeUiToolkit, NativeWindowIdentityHost, NativeWindowToken, PasteTargetFocusStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     TextStyle, TitleButtonVisibility, UiRect, APP_CORE_API_VERSION,
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     REQUIRED_MAIN_HOST_EXECUTION_PLAN_KINDS, REQUIRED_NATIVE_CONTROL_MAPPER_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     REQUIRED_NATIVE_DIALOG_HOST_OPERATIONS, REQUIRED_NATIVE_EDIT_TEXT_DIALOG_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 49 |     REQUIRED_NATIVE_FILE_DIALOG_HOST_OPERATIONS, REQUIRED_NATIVE_IME_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     REQUIRED_NATIVE_MAIL_MERGE_WINDOW_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 51 |     REQUIRED_NATIVE_MAIN_SEARCH_CONTROL_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 52 |     REQUIRED_NATIVE_MAIN_WINDOW_HOST_OPERATIONS, REQUIRED_NATIVE_PASTE_TARGET_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     REQUIRED_NATIVE_POPUP_MENU_HOST_OPERATIONS, REQUIRED_NATIVE_SETTINGS_DROPDOWN_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |     REQUIRED_NATIVE_SETTINGS_WINDOW_HOST_OPERATIONS, REQUIRED_NATIVE_SHELL_OPEN_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     REQUIRED_NATIVE_STYLE_HOST_OPERATIONS, REQUIRED_NATIVE_TEXT_CARET_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     REQUIRED_NATIVE_TEXT_INPUT_DIALOG_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     REQUIRED_NATIVE_TRANSIENT_WINDOW_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 58 |     REQUIRED_NATIVE_WINDOW_IDENTITY_HOST_OPERATIONS, REQUIRED_RENDERER_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     REQUIRED_SETTINGS_CONTROL_HOST_OPERATIONS, REQUIRED_STATUS_ITEM_HOST_OPERATIONS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     REQUIRED_TEXT_LAYOUT_HOST_OPERATIONS, REQUIRED_UI_HOST_SURFACES, SHARED_NON_HOST_UI_PROTOCOLS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cloud_sync.rs:1019:9
[INFO] [stdout]      |
[INFO] [stdout] 1019 |     let mut cmd = Command::new("curl");
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group_popup_menus`
[INFO] [stdout]    --> src/linux_native_host.rs:649:17
[INFO] [stdout]     |
[INFO] [stdout] 649 |             let group_popup_menus = GroupPopupMenus {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_group_popup_menus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/time_utils.rs:81:10
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]   --> src/time_utils.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> src/time_utils.rs:81:16
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]   --> src/time_utils.rs:81:19
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/time_utils.rs:81:22
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sec`
[INFO] [stdout]   --> src/time_utils.rs:81:27
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reload_settings` and `reload_data` are never read
[INFO] [stdout]   --> src/cloud_sync.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct CloudSyncOutcome {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 43 |     pub status_text: String,
[INFO] [stdout] 44 |     pub reload_settings: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub reload_data: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CloudSyncOutcome` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cloud_sync_interval` is never used
[INFO] [stdout]   --> src/cloud_sync.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn cloud_sync_interval(label: &str) -> Duration {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_db` is never used
[INFO] [stdout]    --> src/db_runtime.rs:335:15
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub(crate) fn ensure_db() {
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `close_db` is never used
[INFO] [stdout]    --> src/db_runtime.rs:924:15
[INFO] [stdout]     |
[INFO] [stdout] 924 | pub(crate) fn close_db() {
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `app_title` is never used
[INFO] [stdout]   --> src/i18n_runtime.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn app_title() -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HTTP_MAX_BODY` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const HTTP_MAX_BODY: usize = 12 * 1024 * 1024;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISCOVERY_INTERVAL_MS` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) const DISCOVERY_INTERVAL_MS: u64 = 5000;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOBILE_IMAGE_LIST_LIMIT` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) const MOBILE_IMAGE_LIST_LIMIT: i64 = 50;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOBILE_ITEM_LIST_LIMIT_DEFAULT` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) const MOBILE_ITEM_LIST_LIMIT_DEFAULT: i64 = 50;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOBILE_ITEM_LIST_LIMIT_MAX` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub(crate) const MOBILE_ITEM_LIST_LIMIT_MAX: i64 = 100;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WPS_TASKPANE_ITEM_LIMIT` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) const WPS_TASKPANE_ITEM_LIMIT: i64 = 80;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAN_SEEN_MESSAGE_MAX` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(crate) const LAN_SEEN_MESSAGE_MAX: usize = 4096;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAN_TCP_BIND_CANDIDATE_COUNT` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(crate) const LAN_TCP_BIND_CANDIDATE_COUNT: u16 = 20;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lan_tcp_bind_candidates` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:40:15
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(crate) fn lan_tcp_bind_candidates(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LanServiceRuntimeState` is never constructed
[INFO] [stdout]    --> src/lan_sync_core.rs:201:19
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub(crate) struct LanServiceRuntimeState {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_core_config` and `requires_restart_for` are never used
[INFO] [stdout]    --> src/lan_sync_core.rs:210:19
[INFO] [stdout]     |
[INFO] [stdout] 209 | impl LanServiceRuntimeState {
[INFO] [stdout]     | --------------------------- associated items in this implementation
[INFO] [stdout] 210 |     pub(crate) fn from_core_config(config: &LanRuntimeCoreConfig, actual_tcp_port: u16) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub(crate) fn requires_restart_for(&self, config: &LanRuntimeCoreConfig) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LanServiceLifecyclePlan` is never constructed
[INFO] [stdout]    --> src/lan_sync_core.rs:230:19
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub(crate) struct LanServiceLifecyclePlan {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `for_config` and `for_state` are never used
[INFO] [stdout]    --> src/lan_sync_core.rs:240:19
[INFO] [stdout]     |
[INFO] [stdout] 239 | impl LanServiceLifecyclePlan {
[INFO] [stdout]     | ---------------------------- associated functions in this implementation
[INFO] [stdout] 240 |     pub(crate) fn for_config(config: &LanRuntimeCoreConfig) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub(crate) fn for_state(state: &LanServiceRuntimeState) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LanHttpRoutePolicy` is never constructed
[INFO] [stdout]    --> src/lan_sync_core.rs:264:19
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub(crate) struct LanHttpRoutePolicy {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LanHttpRoute` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:270:17
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub(crate) enum LanHttpRoute {
[INFO] [stdout]     |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_wps_taskpane` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:295:19
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl LanHttpRoute {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 295 |     pub(crate) fn is_wps_taskpane(self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `for_config`, `route_available`, and `route_available_for_route` are never used
[INFO] [stdout]    --> src/lan_sync_core.rs:304:19
[INFO] [stdout]     |
[INFO] [stdout] 303 | impl LanHttpRoutePolicy {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 304 |     pub(crate) fn for_config(config: &LanRuntimeCoreConfig) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub(crate) fn route_available(&self, method: &str, path: &str) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub(crate) fn route_available_for_route(&self, route: LanHttpRoute) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_wps_taskpane_route` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:323:15
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub(crate) fn is_wps_taskpane_route(method: &str, path: &str) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lan_http_route_for` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:327:15
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub(crate) fn lan_http_route_for(method: &str, path: &str) -> LanHttpRoute {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_multi_sync_manifest_path` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:359:15
[INFO] [stdout]     |
[INFO] [stdout] 359 | pub(crate) fn is_multi_sync_manifest_path(path: &str) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mobile_item_image_path_id` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:367:15
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub(crate) fn mobile_item_image_path_id(path: &str) -> Option<i64> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mobile_item_file_path_parts` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:373:15
[INFO] [stdout]     |
[INFO] [stdout] 373 | pub(crate) fn mobile_item_file_path_parts(path: &str) -> Option<(i64, usize)> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HttpRequest` is never constructed
[INFO] [stdout]    --> src/lan_sync_core.rs:421:19
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub(crate) struct HttpRequest {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `path_without_query`, `header_value`, `query_param`, and `query_param_decoded` are never used
[INFO] [stdout]    --> src/lan_sync_core.rs:430:19
[INFO] [stdout]     |
[INFO] [stdout] 429 | impl HttpRequest {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 430 |     pub(crate) fn path_without_query(&self) -> &str {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub(crate) fn header_value(&self, name: &str) -> Option<&str> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub(crate) fn query_param(&self, key: &str) -> String {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 442 |     pub(crate) fn query_param_decoded(&self, key: &str) -> String {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `http_path_without_query` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:447:15
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub(crate) fn http_path_without_query(path: &str) -> &str {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_http_request` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:451:15
[INFO] [stdout]     |
[INFO] [stdout] 451 | pub(crate) fn read_http_request(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_http_json` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:514:15
[INFO] [stdout]     |
[INFO] [stdout] 514 | pub(crate) fn write_http_json(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_http_bytes` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:530:15
[INFO] [stdout]     |
[INFO] [stdout] 530 | pub(crate) fn write_http_bytes(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_http_file` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:552:15
[INFO] [stdout]     |
[INFO] [stdout] 552 | pub(crate) fn write_http_file(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `http_reason` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:577:15
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub(crate) fn http_reason(status: u16) -> &'static str {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_lan_host` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:623:15
[INFO] [stdout]     |
[INFO] [stdout] 623 | pub(crate) fn normalize_lan_host(raw: &str, default_port: u16) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `url_encode_component` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:644:15
[INFO] [stdout]     |
[INFO] [stdout] 644 | pub(crate) fn url_encode_component(value: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `safe_lan_file_name` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:657:15
[INFO] [stdout]     |
[INFO] [stdout] 657 | pub(crate) fn safe_lan_file_name(name: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lan_file_session_key` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:674:15
[INFO] [stdout]     |
[INFO] [stdout] 674 | pub(crate) fn lan_file_session_key(source_device_id: &str, transfer_id: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lan_file_content_hasher` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:678:15
[INFO] [stdout]     |
[INFO] [stdout] 678 | pub(crate) fn lan_file_content_hasher(total_size: u64) -> crc32fast::Hasher {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_lan_pair_code` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:690:15
[INFO] [stdout]     |
[INFO] [stdout] 690 | pub(crate) fn make_lan_pair_code(a: &str, b: &str, now_ms: u64) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remember_lan_seen_message_key` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:717:15
[INFO] [stdout]     |
[INFO] [stdout] 717 | pub(crate) fn remember_lan_seen_message_key(seen: &mut HashSet<String>, key: String) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lan_pair_status_response_value` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:724:15
[INFO] [stdout]     |
[INFO] [stdout] 724 | pub(crate) fn lan_pair_status_response_value(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header_value` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:748:15
[INFO] [stdout]     |
[INFO] [stdout] 748 | pub(crate) fn header_value<'a>(req: &'a HttpRequest, name: &str) -> Option<&'a str> {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `query_param` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:755:15
[INFO] [stdout]     |
[INFO] [stdout] 755 | pub(crate) fn query_param(path: &str, key: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `query_param_decoded` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:770:15
[INFO] [stdout]     |
[INFO] [stdout] 770 | pub(crate) fn query_param_decoded(path: &str, key: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `percent_decode` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:774:15
[INFO] [stdout]     |
[INFO] [stdout] 774 | pub(crate) fn percent_decode(value: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_value` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:792:4
[INFO] [stdout]     |
[INFO] [stdout] 792 | fn hex_value(ch: u8) -> Option<u8> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `runtime_enabled` and `pair_request_body` are never used
[INFO] [stdout]    --> src/lan_sync_core.rs:812:19
[INFO] [stdout]     |
[INFO] [stdout] 811 | impl LanRuntimeSettings {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] 812 |     pub(crate) fn runtime_enabled(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 835 |     pub(crate) fn pair_request_body(&self, capabilities: Vec<String>) -> PairRequestBody {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PlatformMainWindow` is never constructed
[INFO] [stdout]    --> src/lan_sync_core.rs:892:5
[INFO] [stdout]     |
[INFO] [stdout] 890 | pub(crate) enum LanRuntimeEventSink {
[INFO] [stdout]     |                 ------------------- variant in this enum
[INFO] [stdout] 891 |     None,
[INFO] [stdout] 892 |     PlatformMainWindow { raw_handle: isize },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LanRuntimeEventSink` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `platform_main_window` and `raw_platform_main_window_handle` are never used
[INFO] [stdout]    --> src/lan_sync_core.rs:896:19
[INFO] [stdout]     |
[INFO] [stdout] 895 | impl LanRuntimeEventSink {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 896 |     pub(crate) fn platform_main_window(raw_handle: isize) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 904 |     pub(crate) fn raw_platform_main_window_handle(&self) -> Option<isize> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `event_sink` is never read
[INFO] [stdout]    --> src/lan_sync_core.rs:918:16
[INFO] [stdout]     |
[INFO] [stdout] 916 | pub(crate) struct LanRuntimePlatformContext {
[INFO] [stdout]     |                   ------------------------- field in this struct
[INFO] [stdout] 917 |     pub(crate) data_dir: PathBuf,
[INFO] [stdout] 918 |     pub(crate) event_sink: LanRuntimeEventSink,
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LanRuntimePlatformContext` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save_devices` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:953:19
[INFO] [stdout]     |
[INFO] [stdout] 923 | impl LanRuntimePlatformContext {
[INFO] [stdout]     | ------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 953 |     pub(crate) fn save_devices(
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PairRequestBody` is never constructed
[INFO] [stdout]    --> src/lan_sync_core.rs:995:19
[INFO] [stdout]     |
[INFO] [stdout] 995 | pub(crate) struct PairRequestBody {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_host_action` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3343:15
[INFO] [stdout]      |
[INFO] [stdout] 3343 | pub(crate) fn dispatch_gtk_host_action(action: NativeHostUiAction) -> ProductAdapterCommandResult {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_settings_action` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3347:15
[INFO] [stdout]      |
[INFO] [stdout] 3347 | pub(crate) fn dispatch_gtk_settings_action(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_settings_control_action` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3353:15
[INFO] [stdout]      |
[INFO] [stdout] 3353 | pub(crate) fn dispatch_gtk_settings_control_action(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_settings_platform_action` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3359:15
[INFO] [stdout]      |
[INFO] [stdout] 3359 | pub(crate) fn dispatch_gtk_settings_platform_action(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_dialog_action` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3365:15
[INFO] [stdout]      |
[INFO] [stdout] 3365 | pub(crate) fn dispatch_gtk_dialog_action(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_status_menu_action` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3371:15
[INFO] [stdout]      |
[INFO] [stdout] 3371 | pub(crate) fn dispatch_gtk_status_menu_action(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_menu_command_id` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3377:15
[INFO] [stdout]      |
[INFO] [stdout] 3377 | pub(crate) fn dispatch_gtk_menu_command_id(menu_id: usize) -> ProductAdapterCommandResult {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_vv_select_event` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3381:15
[INFO] [stdout]      |
[INFO] [stdout] 3381 | pub(crate) fn dispatch_gtk_vv_select_event(index: usize) -> ProductAdapterAsyncBridgeResult {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_vv_paste` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3392:15
[INFO] [stdout]      |
[INFO] [stdout] 3392 | pub(crate) fn dispatch_gtk_vv_paste(index: usize) -> NativeHostVvPasteExecution {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_row_action` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3396:15
[INFO] [stdout]      |
[INFO] [stdout] 3396 | pub(crate) fn dispatch_gtk_row_action(action: NativeHostRowAction) -> ProductAdapterCommandResult {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_search_text_action` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3400:15
[INFO] [stdout]      |
[INFO] [stdout] 3400 | pub(crate) fn dispatch_gtk_search_text_action(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `initial_value` is never read
[INFO] [stdout]     --> src/linux_native_host.rs:2535:9
[INFO] [stdout]      |
[INFO] [stdout] 2533 |     struct NativeSettingsEntryBinding {
[INFO] [stdout]      |            -------------------------- field in this struct
[INFO] [stdout] 2534 |         control_key: &'static str,
[INFO] [stdout] 2535 |         initial_value: String,
[INFO] [stdout]      |         ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `NativeSettingsEntryBinding` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `initial_value` is never read
[INFO] [stdout]     --> src/linux_native_host.rs:2542:9
[INFO] [stdout]      |
[INFO] [stdout] 2540 |     struct NativeSettingsToggleBinding {
[INFO] [stdout]      |            --------------------------- field in this struct
[INFO] [stdout] 2541 |         control_key: &'static str,
[INFO] [stdout] 2542 |         initial_value: bool,
[INFO] [stdout]      |         ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `NativeSettingsToggleBinding` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MULTI_SYNC_LEGACY_MANIFEST_FILE_NAME` is never used
[INFO] [stdout]   --> src/multi_sync.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) const MULTI_SYNC_LEGACY_MANIFEST_FILE_NAME: &str = "SyncClipboard.json";
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transport_status_label` is never used
[INFO] [stdout]   --> src/multi_sync.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) fn transport_status_label(webdav_enabled: bool, lan_enabled: bool) -> &'static str {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCROLL_BAR_W` is never used
[INFO] [stdout]   --> src/settings_model.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const SCROLL_BAR_W: i32 = 3;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCROLL_BAR_W_ACTIVE` is never used
[INFO] [stdout]   --> src/settings_model.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const SCROLL_BAR_W_ACTIVE: i32 = 5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCROLL_BAR_MARGIN` is never used
[INFO] [stdout]   --> src/settings_model.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const SCROLL_BAR_MARGIN: i32 = 3;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SETTINGS_VIEWPORT_MASK_H` is never used
[INFO] [stdout]   --> src/settings_model.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const SETTINGS_VIEWPORT_MASK_H: i32 = 14;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SETTINGS_DROPDOWN_ITEM_H` is never used
[INFO] [stdout]   --> src/settings_model.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const SETTINGS_DROPDOWN_ITEM_H: i32 = 38;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SETTINGS_DROPDOWN_PAD` is never used
[INFO] [stdout]   --> src/settings_model.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const SETTINGS_DROPDOWN_PAD: i32 = 6;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SETTINGS_DROPDOWN_MAX_VISIBLE_ROWS` is never used
[INFO] [stdout]   --> src/settings_model.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const SETTINGS_DROPDOWN_MAX_VISIBLE_ROWS: i32 = 8;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsPluginAiCapabilityPresentation` is never constructed
[INFO] [stdout]   --> src/settings_model.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(crate) struct SettingsPluginAiCapabilityPresentation {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsPluginAiPanel` is never constructed
[INFO] [stdout]   --> src/settings_model.rs:36:19
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) struct SettingsPluginAiPanel {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `index` is never used
[INFO] [stdout]   --> src/settings_model.rs:69:18
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl SettingsPage {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 69 |     pub const fn index(self) -> usize {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SettingsDpiMoveAction` is never used
[INFO] [stdout]    --> src/settings_model.rs:356:10
[INFO] [stdout]     |
[INFO] [stdout] 356 | pub enum SettingsDpiMoveAction {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_dpi_move_action` is never used
[INFO] [stdout]    --> src/settings_model.rs:362:8
[INFO] [stdout]     |
[INFO] [stdout] 362 | pub fn settings_dpi_move_action(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_scroll_delta_for_wheel` is never used
[INFO] [stdout]    --> src/settings_model.rs:376:8
[INFO] [stdout]     |
[INFO] [stdout] 376 | pub fn settings_scroll_delta_for_wheel(delta: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsWindowMovePlan` is never constructed
[INFO] [stdout]    --> src/settings_model.rs:385:12
[INFO] [stdout]     |
[INFO] [stdout] 385 | pub struct SettingsWindowMovePlan {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_work_bounds` is never used
[INFO] [stdout]    --> src/settings_model.rs:392:4
[INFO] [stdout]     |
[INFO] [stdout] 392 | fn settings_work_bounds(work: UiRect, pad: i32) -> UiRect {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_window_size_limits` is never used
[INFO] [stdout]    --> src/settings_model.rs:401:4
[INFO] [stdout]     |
[INFO] [stdout] 401 | fn settings_window_size_limits(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_window_fit_plan` is never used
[INFO] [stdout]    --> src/settings_model.rs:414:8
[INFO] [stdout]     |
[INFO] [stdout] 414 | pub fn settings_window_fit_plan(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_window_dpi_transition_plan` is never used
[INFO] [stdout]    --> src/settings_model.rs:445:8
[INFO] [stdout]     |
[INFO] [stdout] 445 | pub fn settings_window_dpi_transition_plan(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plugin_form_sections` is never used
[INFO] [stdout]    --> src/settings_model.rs:583:4
[INFO] [stdout]     |
[INFO] [stdout] 583 | fn plugin_form_sections(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_title_rect` is never used
[INFO] [stdout]    --> src/settings_model.rs:690:8
[INFO] [stdout]     |
[INFO] [stdout] 690 | pub fn settings_title_rect() -> UiRect {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_nav_index_at` is never used
[INFO] [stdout]    --> src/settings_model.rs:699:8
[INFO] [stdout]     |
[INFO] [stdout] 699 | pub fn settings_nav_index_at(x: i32, y: i32, page_count: usize) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SettingsPointerDownTarget` is never used
[INFO] [stdout]    --> src/settings_model.rs:704:10
[INFO] [stdout]     |
[INFO] [stdout] 704 | pub enum SettingsPointerDownTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsNavHoverTransition` is never constructed
[INFO] [stdout]    --> src/settings_model.rs:717:12
[INFO] [stdout]     |
[INFO] [stdout] 717 | pub struct SettingsNavHoverTransition {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_nav_hover_for_pointer` is never used
[INFO] [stdout]    --> src/settings_model.rs:722:8
[INFO] [stdout]     |
[INFO] [stdout] 722 | pub fn settings_nav_hover_for_pointer(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_nav_hover_transition` is never used
[INFO] [stdout]    --> src/settings_model.rs:734:8
[INFO] [stdout]     |
[INFO] [stdout] 734 | pub fn settings_nav_hover_transition(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsPointerMoveTransition` is never constructed
[INFO] [stdout]    --> src/settings_model.rs:765:12
[INFO] [stdout]     |
[INFO] [stdout] 765 | pub struct SettingsPointerMoveTransition {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_pointer_move_transition` is never used
[INFO] [stdout]    --> src/settings_model.rs:770:8
[INFO] [stdout]     |
[INFO] [stdout] 770 | pub fn settings_pointer_move_transition(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SettingsNavIconKind` is never used
[INFO] [stdout]    --> src/settings_model.rs:799:10
[INFO] [stdout]     |
[INFO] [stdout] 799 | pub enum SettingsNavIconKind {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `for_page` is never used
[INFO] [stdout]    --> src/settings_model.rs:809:12
[INFO] [stdout]     |
[INFO] [stdout] 808 | impl SettingsNavIconKind {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] 809 |     pub fn for_page(page: SettingsPage) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsNavItemRender` is never constructed
[INFO] [stdout]    --> src/settings_model.rs:822:12
[INFO] [stdout]     |
[INFO] [stdout] 822 | pub struct SettingsNavItemRender {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsNavRenderPlan` is never constructed
[INFO] [stdout]    --> src/settings_model.rs:834:12
[INFO] [stdout]     |
[INFO] [stdout] 834 | pub struct SettingsNavRenderPlan {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SettingsThemeRole` is never used
[INFO] [stdout]    --> src/settings_model.rs:839:10
[INFO] [stdout]     |
[INFO] [stdout] 839 | pub enum SettingsThemeRole {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SettingsTextFontRole` is never used
[INFO] [stdout]    --> src/settings_model.rs:856:10
[INFO] [stdout]     |
[INFO] [stdout] 856 | pub enum SettingsTextFontRole {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SettingsTextContent` is never used
[INFO] [stdout]    --> src/settings_model.rs:863:10
[INFO] [stdout]     |
[INFO] [stdout] 863 | pub enum SettingsTextContent {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SettingsPaintCommand` is never used
[INFO] [stdout]    --> src/settings_model.rs:870:10
[INFO] [stdout]     |
[INFO] [stdout] 870 | pub enum SettingsPaintCommand {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsTextCommand` is never constructed
[INFO] [stdout]    --> src/settings_model.rs:889:12
[INFO] [stdout]     |
[INFO] [stdout] 889 | pub struct SettingsTextCommand {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsPaintPlan` is never constructed
[INFO] [stdout]    --> src/settings_model.rs:899:12
[INFO] [stdout]     |
[INFO] [stdout] 899 | pub struct SettingsPaintPlan {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SettingsNavItemPaintPlan` is never used
[INFO] [stdout]    --> src/settings_model.rs:904:10
[INFO] [stdout]     |
[INFO] [stdout] 904 | pub type SettingsNavItemPaintPlan = SettingsPaintPlan;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SettingsChromePaintPlan` is never used
[INFO] [stdout]    --> src/settings_model.rs:905:10
[INFO] [stdout]     |
[INFO] [stdout] 905 | pub type SettingsChromePaintPlan = SettingsPaintPlan;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SettingsContentPaintPlan` is never used
[INFO] [stdout]    --> src/settings_model.rs:906:10
[INFO] [stdout]     |
[INFO] [stdout] 906 | pub type SettingsContentPaintPlan = SettingsPaintPlan;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SettingsScrollbarPaintPlan` is never used
[INFO] [stdout]    --> src/settings_model.rs:907:10
[INFO] [stdout]     |
[INFO] [stdout] 907 | pub type SettingsScrollbarPaintPlan = SettingsPaintPlan;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_nav_item_paint_plan` is never used
[INFO] [stdout]    --> src/settings_model.rs:909:8
[INFO] [stdout]     |
[INFO] [stdout] 909 | pub fn settings_nav_item_paint_plan(item: &SettingsNavItemRender) -> SettingsNavItemPaintPlan {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_nav_render_plan` is never used
[INFO] [stdout]    --> src/settings_model.rs:993:8
[INFO] [stdout]     |
[INFO] [stdout] 993 | pub fn settings_nav_render_plan(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_nav_badge_rect` is never used
[INFO] [stdout]     --> src/settings_model.rs:1024:4
[INFO] [stdout]      |
[INFO] [stdout] 1024 | fn settings_nav_badge_rect(item_rect: UiRect) -> UiRect {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsChromeRenderPlan` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:1034:12
[INFO] [stdout]      |
[INFO] [stdout] 1034 | pub struct SettingsChromeRenderPlan {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_chrome_render_plan` is never used
[INFO] [stdout]     --> src/settings_model.rs:1046:8
[INFO] [stdout]      |
[INFO] [stdout] 1046 | pub fn settings_chrome_render_plan(window: UiRect) -> SettingsChromeRenderPlan {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_chrome_paint_plan` is never used
[INFO] [stdout]     --> src/settings_model.rs:1076:8
[INFO] [stdout]      |
[INFO] [stdout] 1076 | pub fn settings_chrome_paint_plan(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_viewport_mask_paint_plan` is never used
[INFO] [stdout]     --> src/settings_model.rs:1125:8
[INFO] [stdout]      |
[INFO] [stdout] 1125 | pub fn settings_viewport_mask_paint_plan(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_viewport_rect_for_window` is never used
[INFO] [stdout]     --> src/settings_model.rs:1143:8
[INFO] [stdout]      |
[INFO] [stdout] 1143 | pub fn settings_viewport_rect_for_window(window: UiRect) -> UiRect {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_viewport_mask_rect_for_window` is never used
[INFO] [stdout]     --> src/settings_model.rs:1152:8
[INFO] [stdout]      |
[INFO] [stdout] 1152 | pub fn settings_viewport_mask_rect_for_window(window: UiRect) -> UiRect {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_safe_paint_rect_for_window` is never used
[INFO] [stdout]     --> src/settings_model.rs:1161:8
[INFO] [stdout]      |
[INFO] [stdout] 1161 | pub fn settings_safe_paint_rect_for_window(window: UiRect) -> UiRect {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_child_visible_in_viewport` is never used
[INFO] [stdout]     --> src/settings_model.rs:1166:8
[INFO] [stdout]      |
[INFO] [stdout] 1166 | pub fn settings_child_visible_in_viewport(new_y: i32, height: i32, viewport: UiRect) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_dropdown_max_items_labels` is never used
[INFO] [stdout]     --> src/settings_model.rs:1182:8
[INFO] [stdout]      |
[INFO] [stdout] 1182 | pub fn settings_dropdown_max_items_labels() -> [&'static str; 6] {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_dropdown_index_for_max_items` is never used
[INFO] [stdout]     --> src/settings_model.rs:1193:8
[INFO] [stdout]      |
[INFO] [stdout] 1193 | pub fn settings_dropdown_index_for_max_items(max_items: usize) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_dropdown_max_items_from_label_opt` is never used
[INFO] [stdout]     --> src/settings_model.rs:1204:8
[INFO] [stdout]      |
[INFO] [stdout] 1204 | pub fn settings_dropdown_max_items_from_label_opt(label: &str) -> Option<usize> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_dropdown_max_items_from_label` is never used
[INFO] [stdout]     --> src/settings_model.rs:1216:8
[INFO] [stdout]      |
[INFO] [stdout] 1216 | pub fn settings_dropdown_max_items_from_label(label: &str) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_dropdown_index_for_pos_mode` is never used
[INFO] [stdout]     --> src/settings_model.rs:1228:8
[INFO] [stdout]      |
[INFO] [stdout] 1228 | pub fn settings_dropdown_index_for_pos_mode(mode: &str) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_dropdown_pos_mode_from_label` is never used
[INFO] [stdout]     --> src/settings_model.rs:1236:8
[INFO] [stdout]      |
[INFO] [stdout] 1236 | pub fn settings_dropdown_pos_mode_from_label(label: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_engine_template` is never used
[INFO] [stdout]     --> src/settings_model.rs:1351:8
[INFO] [stdout]      |
[INFO] [stdout] 1351 | pub fn search_engine_template(key: &str) -> &'static str {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_engine_display` is never used
[INFO] [stdout]     --> src/settings_model.rs:1359:8
[INFO] [stdout]      |
[INFO] [stdout] 1359 | pub fn search_engine_display(key: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_engine_key_from_display` is never used
[INFO] [stdout]     --> src/settings_model.rs:1367:8
[INFO] [stdout]      |
[INFO] [stdout] 1367 | pub fn search_engine_key_from_display(label: &str) -> &'static str {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_ocr_provider_display` is never used
[INFO] [stdout]     --> src/settings_model.rs:1375:8
[INFO] [stdout]      |
[INFO] [stdout] 1375 | pub fn image_ocr_provider_display(key: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_ocr_provider_key_from_display` is never used
[INFO] [stdout]     --> src/settings_model.rs:1383:8
[INFO] [stdout]      |
[INFO] [stdout] 1383 | pub fn image_ocr_provider_key_from_display(label: &str) -> &'static str {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `text_translate_provider_display` is never used
[INFO] [stdout]     --> src/settings_model.rs:1391:8
[INFO] [stdout]      |
[INFO] [stdout] 1391 | pub fn text_translate_provider_display(key: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `text_translate_provider_key_from_display` is never used
[INFO] [stdout]     --> src/settings_model.rs:1399:8
[INFO] [stdout]      |
[INFO] [stdout] 1399 | pub fn text_translate_provider_key_from_display(label: &str) -> &'static str {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `text_translate_target_display` is never used
[INFO] [stdout]     --> src/settings_model.rs:1407:8
[INFO] [stdout]      |
[INFO] [stdout] 1407 | pub fn text_translate_target_display(key: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `text_translate_target_key_from_display` is never used
[INFO] [stdout]     --> src/settings_model.rs:1415:8
[INFO] [stdout]      |
[INFO] [stdout] 1415 | pub fn text_translate_target_key_from_display(label: &str) -> &'static str {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paste_sound_display` is never used
[INFO] [stdout]     --> src/settings_model.rs:1423:8
[INFO] [stdout]      |
[INFO] [stdout] 1423 | pub fn paste_sound_display(key: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paste_sound_key_from_display` is never used
[INFO] [stdout]     --> src/settings_model.rs:1431:8
[INFO] [stdout]      |
[INFO] [stdout] 1431 | pub fn paste_sound_key_from_display(label: &str) -> &'static str {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paste_sound_file_button_text` is never used
[INFO] [stdout]     --> src/settings_model.rs:1439:8
[INFO] [stdout]      |
[INFO] [stdout] 1439 | pub fn paste_sound_file_button_text(path: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_tab_category` is never used
[INFO] [stdout]     --> src/settings_model.rs:1460:8
[INFO] [stdout]      |
[INFO] [stdout] 1460 | pub fn source_tab_category(tab: usize) -> i64 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_group_overview_text` is never used
[INFO] [stdout]     --> src/settings_model.rs:1480:8
[INFO] [stdout]      |
[INFO] [stdout] 1480 | pub fn settings_group_overview_text(tab: usize, current_filter: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_hotkey_mod` is never used
[INFO] [stdout]     --> src/settings_model.rs:1489:8
[INFO] [stdout]      |
[INFO] [stdout] 1489 | pub fn normalize_hotkey_mod(value: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_hotkey_key` is never used
[INFO] [stdout]     --> src/settings_model.rs:1498:8
[INFO] [stdout]      |
[INFO] [stdout] 1498 | pub fn normalize_hotkey_key(value: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hotkey_preview_text` is never used
[INFO] [stdout]     --> src/settings_model.rs:1507:8
[INFO] [stdout]      |
[INFO] [stdout] 1507 | pub fn hotkey_preview_text(mod_label: &str, key_label: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_name_for_display_entries` is never used
[INFO] [stdout]     --> src/settings_model.rs:1516:8
[INFO] [stdout]      |
[INFO] [stdout] 1516 | pub fn group_name_for_display_entries<'a, I>(groups: I, group_id: i64, all_label: &str) -> String
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MULTI_SYNC_MODE_OPTIONS` is never used
[INFO] [stdout]     --> src/settings_model.rs:1530:11
[INFO] [stdout]      |
[INFO] [stdout] 1530 | pub const MULTI_SYNC_MODE_OPTIONS: [&str; 3] = ["关闭", "WebDAV", "局域网"];
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_multi_sync_flags` is never used
[INFO] [stdout]     --> src/settings_model.rs:1571:8
[INFO] [stdout]      |
[INFO] [stdout] 1571 | pub fn normalize_multi_sync_flags(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `localized_cloud_status_text` is never used
[INFO] [stdout]     --> src/settings_model.rs:1581:8
[INFO] [stdout]      |
[INFO] [stdout] 1581 | pub fn localized_cloud_status_text(status: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lan_receive_mode_from_label` is never used
[INFO] [stdout]     --> src/settings_model.rs:1599:8
[INFO] [stdout]      |
[INFO] [stdout] 1599 | pub fn lan_receive_mode_from_label(label: &str) -> &'static str {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lan_trusted_summary_value_text` is never used
[INFO] [stdout]     --> src/settings_model.rs:1607:8
[INFO] [stdout]      |
[INFO] [stdout] 1607 | pub fn lan_trusted_summary_value_text(summary: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsDropdownPopupLayout` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:1617:12
[INFO] [stdout]      |
[INFO] [stdout] 1617 | pub struct SettingsDropdownPopupLayout {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/settings_model.rs:1627:12
[INFO] [stdout]      |
[INFO] [stdout] 1626 | impl SettingsDropdownPopupLayout {
[INFO] [stdout]      | -------------------------------- associated function in this implementation
[INFO] [stdout] 1627 |     pub fn new(anchor: UiRect, item_count: usize, selected: usize, requested_width: i32) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_dropdown_index_from_y` is never used
[INFO] [stdout]     --> src/settings_model.rs:1652:8
[INFO] [stdout]      |
[INFO] [stdout] 1652 | pub fn settings_dropdown_index_from_y(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_dropdown_max_scroll` is never used
[INFO] [stdout]     --> src/settings_model.rs:1670:8
[INFO] [stdout]      |
[INFO] [stdout] 1670 | pub fn settings_dropdown_max_scroll(item_count: usize, visible_rows: i32) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_dropdown_scroll_step_for_wheel` is never used
[INFO] [stdout]     --> src/settings_model.rs:1674:8
[INFO] [stdout]      |
[INFO] [stdout] 1674 | pub fn settings_dropdown_scroll_step_for_wheel(delta: i32) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_dropdown_scroll_target` is never used
[INFO] [stdout]     --> src/settings_model.rs:1682:8
[INFO] [stdout]      |
[INFO] [stdout] 1682 | pub fn settings_dropdown_scroll_target(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsDropdownInteractionState` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:1693:12
[INFO] [stdout]      |
[INFO] [stdout] 1693 | pub struct SettingsDropdownInteractionState {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `index_from_y`, `max_scroll`, and `scroll_by_wheel` are never used
[INFO] [stdout]     --> src/settings_model.rs:1703:12
[INFO] [stdout]      |
[INFO] [stdout] 1702 | impl SettingsDropdownInteractionState {
[INFO] [stdout]      | ------------------------------------- associated items in this implementation
[INFO] [stdout] 1703 |     pub fn new(item_count: usize, layout: SettingsDropdownPopupLayout) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1714 |     pub fn index_from_y(self, y: i32) -> Option<i32> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1725 |     pub fn max_scroll(self) -> i32 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1729 |     pub fn scroll_by_wheel(&mut self, delta: i32) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_page_scrollable` is never used
[INFO] [stdout]     --> src/settings_model.rs:1745:8
[INFO] [stdout]      |
[INFO] [stdout] 1745 | pub fn settings_page_scrollable(page: usize) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_normalized_page_index` is never used
[INFO] [stdout]     --> src/settings_model.rs:1749:8
[INFO] [stdout]      |
[INFO] [stdout] 1749 | pub fn settings_normalized_page_index(page: usize, page_count: usize) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SettingsPageSwitchMode` is never used
[INFO] [stdout]     --> src/settings_model.rs:1758:10
[INFO] [stdout]      |
[INFO] [stdout] 1758 | pub enum SettingsPageSwitchMode {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsPageSwitchScrollState` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:1764:12
[INFO] [stdout]      |
[INFO] [stdout] 1764 | pub struct SettingsPageSwitchScrollState {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsPageSwitchPlan` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:1772:12
[INFO] [stdout]      |
[INFO] [stdout] 1772 | pub struct SettingsPageSwitchPlan {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_page_switch_plan` is never used
[INFO] [stdout]     --> src/settings_model.rs:1783:8
[INFO] [stdout]      |
[INFO] [stdout] 1783 | pub fn settings_page_switch_plan(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsControlMetrics` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:1829:12
[INFO] [stdout]      |
[INFO] [stdout] 1829 | pub struct SettingsControlMetrics {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SettingsControlId` is never used
[INFO] [stdout]     --> src/settings_model.rs:1835:10
[INFO] [stdout]      |
[INFO] [stdout] 1835 | pub type SettingsControlId = usize;
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsControlState` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:1838:12
[INFO] [stdout]      |
[INFO] [stdout] 1838 | pub struct SettingsControlState {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsScrollControlState` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:1847:12
[INFO] [stdout]      |
[INFO] [stdout] 1847 | pub struct SettingsScrollControlState {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsUiModel` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:1854:12
[INFO] [stdout]      |
[INFO] [stdout] 1854 | pub struct SettingsUiModel {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/settings_model.rs:1862:12
[INFO] [stdout]      |
[INFO] [stdout] 1861 | impl SettingsUiModel {
[INFO] [stdout]      | -------------------- associated items in this implementation
[INFO] [stdout] 1862 |     pub fn new() -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1871 |     pub fn is_built(&self, page: usize) -> bool {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1875 |     pub fn mark_built(&mut self, page: usize) {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1881 |     pub fn register(&mut self, mut control: SettingsControlState) {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1897 |     pub fn set_control_visible(&mut self, id: SettingsControlId, visible: bool) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1909 |     pub fn set_control_bounds(&mut self, id: SettingsControlId, bounds: UiRect) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1921 |     fn recompute_touched_pages(&mut self, mut pages: Vec<usize>) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1929 |     fn recompute_content_bottom(&mut self, page: usize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1944 |     pub fn controls_for_page(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1954 |     pub fn scroll_controls_for_page(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1964 |     pub fn measured_content_total_h(&self, page: usize) -> i32 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1972 |     pub fn clear_page(&mut self, page: usize) {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_control_content_bottom` is never used
[INFO] [stdout]     --> src/settings_model.rs:1985:8
[INFO] [stdout]      |
[INFO] [stdout] 1985 | pub fn settings_control_content_bottom(bounds: UiRect) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_content_bottom_for_controls` is never used
[INFO] [stdout]     --> src/settings_model.rs:1989:8
[INFO] [stdout]      |
[INFO] [stdout] 1989 | pub fn settings_content_bottom_for_controls<I>(controls: I, page: usize) -> i32
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_measured_content_total_h` is never used
[INFO] [stdout]     --> src/settings_model.rs:2001:8
[INFO] [stdout]      |
[INFO] [stdout] 2001 | pub fn settings_measured_content_total_h(content_bottom: i32) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_sections_content_total_h` is never used
[INFO] [stdout]     --> src/settings_model.rs:2007:8
[INFO] [stdout]      |
[INFO] [stdout] 2007 | pub fn settings_sections_content_total_h(sections: &[SettingsSection]) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_page_content_total_h_for_dynamic_sections` is never used
[INFO] [stdout]     --> src/settings_model.rs:2016:8
[INFO] [stdout]      |
[INFO] [stdout] 2016 | pub fn settings_page_content_total_h_for_dynamic_sections(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SettingsContentSource` is never used
[INFO] [stdout]     --> src/settings_model.rs:2065:10
[INFO] [stdout]      |
[INFO] [stdout] 2065 | pub enum SettingsContentSource {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsContentRenderPlan` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:2072:12
[INFO] [stdout]      |
[INFO] [stdout] 2072 | pub struct SettingsContentRenderPlan {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_content_render_plan` is never used
[INFO] [stdout]     --> src/settings_model.rs:2079:8
[INFO] [stdout]      |
[INFO] [stdout] 2079 | pub fn settings_content_render_plan(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_content_paint_plan` is never used
[INFO] [stdout]     --> src/settings_model.rs:2115:8
[INFO] [stdout]      |
[INFO] [stdout] 2115 | pub fn settings_content_paint_plan(plan: &SettingsContentRenderPlan) -> SettingsContentPaintPlan {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsScrollLayout` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:2147:12
[INFO] [stdout]      |
[INFO] [stdout] 2147 | pub struct SettingsScrollLayout {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/settings_model.rs:2160:12
[INFO] [stdout]      |
[INFO] [stdout] 2159 | impl SettingsScrollLayout {
[INFO] [stdout]      | ------------------------- associated items in this implementation
[INFO] [stdout] 2160 |     pub fn new(
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 2182 |     pub fn max_scroll(self) -> i32 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2186 |     pub fn track_rect(self) -> Option<UiRect> {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2204 |     pub fn thumb_rect(self, scroll_y: i32) -> Option<UiRect> {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2226 |     pub fn thumb_hit_rect(self, scroll_y: i32, extra_x: i32) -> Option<UiRect> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2236 |     pub fn drag_scroll_target(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2256 |     pub fn track_click_scroll_target(self, pointer_y: i32) -> Option<i32> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2267 |     pub fn track_hit_rect(self, extra_left: i32, extra_right: i32) -> Option<UiRect> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_pointer_down_target` is never used
[INFO] [stdout]     --> src/settings_model.rs:2278:8
[INFO] [stdout]      |
[INFO] [stdout] 2278 | pub fn settings_pointer_down_target(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_scroll_layout_for_window` is never used
[INFO] [stdout]     --> src/settings_model.rs:2316:8
[INFO] [stdout]      |
[INFO] [stdout] 2316 | pub fn settings_scroll_layout_for_window(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SettingsScrollbarVisualState` is never used
[INFO] [stdout]     --> src/settings_model.rs:2336:10
[INFO] [stdout]      |
[INFO] [stdout] 2336 | pub enum SettingsScrollbarVisualState {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsScrollbarRenderPlan` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:2342:12
[INFO] [stdout]      |
[INFO] [stdout] 2342 | pub struct SettingsScrollbarRenderPlan {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_scrollbar_render_plan` is never used
[INFO] [stdout]     --> src/settings_model.rs:2349:8
[INFO] [stdout]      |
[INFO] [stdout] 2349 | pub fn settings_scrollbar_render_plan(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_scrollbar_paint_plan` is never used
[INFO] [stdout]     --> src/settings_model.rs:2382:8
[INFO] [stdout]      |
[INFO] [stdout] 2382 | pub fn settings_scrollbar_paint_plan(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsQrRun` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:2410:12
[INFO] [stdout]      |
[INFO] [stdout] 2410 | pub struct SettingsQrRun {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsQrCache` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:2417:12
[INFO] [stdout]      |
[INFO] [stdout] 2417 | pub struct SettingsQrCache {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsQrRenderPlan` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:2424:12
[INFO] [stdout]      |
[INFO] [stdout] 2424 | pub struct SettingsQrRenderPlan {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_qr_cache_for_payload` is never used
[INFO] [stdout]     --> src/settings_model.rs:2430:8
[INFO] [stdout]      |
[INFO] [stdout] 2430 | pub fn settings_qr_cache_for_payload(payload: &str) -> Option<SettingsQrCache> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_qr_render_plan` is never used
[INFO] [stdout]     --> src/settings_model.rs:2467:8
[INFO] [stdout]      |
[INFO] [stdout] 2467 | pub fn settings_qr_render_plan(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_make_form_cards` is never used
[INFO] [stdout]     --> src/settings_model.rs:2513:4
[INFO] [stdout]      |
[INFO] [stdout] 2513 | fn settings_make_form_cards(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_make_plugin_cards` is never used
[INFO] [stdout]     --> src/settings_model.rs:2580:4
[INFO] [stdout]      |
[INFO] [stdout] 2580 | fn settings_make_plugin_cards(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_plugin_cards_for_state` is never used
[INFO] [stdout]     --> src/settings_model.rs:2588:8
[INFO] [stdout]      |
[INFO] [stdout] 2588 | pub fn settings_plugin_cards_for_state(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_plugin_ai_panel` is never used
[INFO] [stdout]     --> src/settings_model.rs:2607:15
[INFO] [stdout]      |
[INFO] [stdout] 2607 | pub(crate) fn settings_plugin_ai_panel() -> SettingsPluginAiPanel {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_multi_sync_cards_for_mode` is never used
[INFO] [stdout]     --> src/settings_model.rs:2628:8
[INFO] [stdout]      |
[INFO] [stdout] 2628 | pub fn settings_multi_sync_cards_for_mode(mode: &str) -> Vec<SettingsSection> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_cards_for_page_vec` is never used
[INFO] [stdout]     --> src/settings_model.rs:2645:8
[INFO] [stdout]      |
[INFO] [stdout] 2645 | pub fn settings_cards_for_page_vec(page: usize) -> Vec<SettingsSection> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_section` is never used
[INFO] [stdout]     --> src/settings_model.rs:3940:8
[INFO] [stdout]      |
[INFO] [stdout] 3940 | pub fn settings_section(page: usize, index: usize) -> SettingsSection {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_section_body_rect` is never used
[INFO] [stdout]     --> src/settings_model.rs:3950:8
[INFO] [stdout]      |
[INFO] [stdout] 3950 | pub fn settings_section_body_rect(page: usize, index: usize, padding: i32) -> UiRect {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_form_layout_for_section` is never used
[INFO] [stdout]     --> src/settings_model.rs:3961:8
[INFO] [stdout]      |
[INFO] [stdout] 3961 | pub fn settings_form_layout_for_section(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label_w` is never read
[INFO] [stdout]     --> src/settings_model.rs:3977:5
[INFO] [stdout]      |
[INFO] [stdout] 3975 | pub struct SettingsFormSectionLayout {
[INFO] [stdout]      |            ------------------------- field in this struct
[INFO] [stdout] 3976 |     body: UiRect,
[INFO] [stdout] 3977 |     label_w: i32,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `SettingsFormSectionLayout` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsQrActionLayout` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:3981:12
[INFO] [stdout]      |
[INFO] [stdout] 3981 | pub struct SettingsQrActionLayout {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsToggleRowLayout` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:3987:12
[INFO] [stdout]      |
[INFO] [stdout] 3987 | pub struct SettingsToggleRowLayout {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_toggle_row_layout_for_rect` is never used
[INFO] [stdout]     --> src/settings_model.rs:3992:8
[INFO] [stdout]      |
[INFO] [stdout] 3992 | pub fn settings_toggle_row_layout_for_rect(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsActionHintLayout` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:4016:12
[INFO] [stdout]      |
[INFO] [stdout] 4016 | pub struct SettingsActionHintLayout {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsLabeledFieldLayout` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:4022:12
[INFO] [stdout]      |
[INFO] [stdout] 4022 | pub struct SettingsLabeledFieldLayout {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsFlowLayout` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:4028:12
[INFO] [stdout]      |
[INFO] [stdout] 4028 | pub struct SettingsFlowLayout {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsUpdatePresentationInput` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:4035:12
[INFO] [stdout]      |
[INFO] [stdout] 4035 | pub struct SettingsUpdatePresentationInput {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SettingsUpdatePresentation` is never constructed
[INFO] [stdout]     --> src/settings_model.rs:4044:12
[INFO] [stdout]      |
[INFO] [stdout] 4044 | pub struct SettingsUpdatePresentation {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_update_presentation` is never used
[INFO] [stdout]     --> src/settings_model.rs:4049:8
[INFO] [stdout]      |
[INFO] [stdout] 4049 | pub fn settings_update_presentation(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/settings_model.rs:4101:12
[INFO] [stdout]      |
[INFO] [stdout] 4100 | impl SettingsFlowLayout {
[INFO] [stdout]      | ----------------------- associated items in this implementation
[INFO] [stdout] 4101 |     pub fn new(x: i32, y: i32, width: i32) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 4105 |     pub fn full_rect(&self, h: i32) -> UiRect {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4109 |     pub fn consume_full(&mut self, h: i32, gap: i32) -> UiRect {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4115 |     pub fn row_label_rect(&self, label_w: i32, label_h: i32, offset_y: i32) -> UiRect {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4124 |     pub fn row_field_rect(&self, label_w: i32, row_h: i32) -> UiRect {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4133 |     pub fn consume_row(&mut self, row_h: i32, gap: i32) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4137 |     pub fn button_rect(&self, w: i32, h: i32) -> UiRect {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/settings_model.rs:4143:12
[INFO] [stdout]      |
[INFO] [stdout] 4142 | impl SettingsFormSectionLayout {
[INFO] [stdout]      | ------------------------------ associated items in this implementation
[INFO] [stdout] 4143 |     pub fn new(page: usize, index: usize, label_w: i32) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 4150 |     pub fn from_section(section: SettingsSection, label_w: i32) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4163 |     pub fn left(&self) -> i32 {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4166 |     pub fn label_w(&self) -> i32 {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4169 |     pub fn full_w(&self) -> i32 {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4172 |     pub fn row_y(&self, row: i32) -> i32 {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4176 |     pub fn label_y(&self, row: i32, h: i32) -> i32 {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4179 |     pub fn label_rect(&self, row: i32, h: i32) -> UiRect {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4183 |     pub fn field_x(&self) -> i32 {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4186 |     pub fn field_w(&self) -> i32 {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4189 |     pub fn field_rect(&self, row: i32, w: i32, h: i32) -> UiRect {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4194 |     pub fn field_full_rect(&self, row: i32, h: i32) -> UiRect {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4197 |     pub fn field_sized_row_rect(&self, row: i32, w: i32) -> UiRect {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4200 |     pub fn field_row_rect(&self, row: i32) -> UiRect {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4203 |     pub fn field_label_rect(&self, row: i32, h: i32) -> UiRect {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4208 |     pub fn labeled_field_layout(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4224 |     pub fn action_x(&self, slot: i32, w: i32) -> i32 {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4228 |     pub fn action_row_rects(&self, row: i32, widths: &[i32]) -> Vec<UiRect> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4241 |     pub fn toggle_row_layout(&self, row: i32) -> SettingsToggleRowLayout {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4256 |     pub fn field_action_hint_layout(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 4279 |     pub fn qr_action_layout(&self, row: i32) -> SettingsQrActionLayout {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_page_content_total_h` is never used
[INFO] [stdout]     --> src/settings_model.rs:4297:8
[INFO] [stdout]      |
[INFO] [stdout] 4297 | pub fn settings_page_content_total_h(page: usize) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gregorian_to_days` is never used
[INFO] [stdout]  --> src/time_utils.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) fn gregorian_to_days(y: i32, m: i32, d: i32) -> i64 {
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `days_to_gregorian` is never used
[INFO] [stdout]   --> src/time_utils.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) fn days_to_gregorian(days: i64) -> (i32, i32, i32) {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `days_to_sqlite_date` is never used
[INFO] [stdout]   --> src/time_utils.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) fn days_to_sqlite_date(days: i64) -> String {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unix_secs_to_sqlite_str` is never used
[INFO] [stdout]   --> src/time_utils.rs:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub(crate) fn unix_secs_to_sqlite_str(secs: i64) -> String {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `now_utc_sqlite` is never used
[INFO] [stdout]   --> src/time_utils.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub(crate) fn now_utc_sqlite() -> String {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_created_at_prefix` is never used
[INFO] [stdout]   --> src/time_utils.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn parse_created_at_prefix(created_at: &str) -> Option<(i32, i32, i32, i32, i32)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_created_at_local` is never used
[INFO] [stdout]    --> src/time_utils.rs:108:15
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub(crate) fn format_created_at_local(created_at: &str, fallback: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_local_time_for_image_preview` is never used
[INFO] [stdout]    --> src/time_utils.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub(crate) fn format_local_time_for_image_preview() -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cloud_sync.rs:1019:9
[INFO] [stdout]      |
[INFO] [stdout] 1019 |     let mut cmd = Command::new("curl");
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group_popup_menus`
[INFO] [stdout]    --> src/linux_native_host.rs:649:17
[INFO] [stdout]     |
[INFO] [stdout] 649 |             let group_popup_menus = GroupPopupMenus {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_group_popup_menus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/time_utils.rs:81:10
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]   --> src/time_utils.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> src/time_utils.rs:81:16
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]   --> src/time_utils.rs:81:19
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/time_utils.rs:81:22
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sec`
[INFO] [stdout]   --> src/time_utils.rs:81:27
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let (y, m, d, h, min, sec) = unix_secs_to_parts(secs);
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `reload_settings` is never read
[INFO] [stdout]   --> src/cloud_sync.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct CloudSyncOutcome {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 43 |     pub status_text: String,
[INFO] [stdout] 44 |     pub reload_settings: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CloudSyncOutcome` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_db` is never used
[INFO] [stdout]    --> src/db_runtime.rs:335:15
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub(crate) fn ensure_db() {
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `close_db` is never used
[INFO] [stdout]    --> src/db_runtime.rs:924:15
[INFO] [stdout]     |
[INFO] [stdout] 924 | pub(crate) fn close_db() {
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `app_title` is never used
[INFO] [stdout]   --> src/i18n_runtime.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn app_title() -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISCOVERY_INTERVAL_MS` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) const DISCOVERY_INTERVAL_MS: u64 = 5000;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOBILE_IMAGE_LIST_LIMIT` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) const MOBILE_IMAGE_LIST_LIMIT: i64 = 50;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOBILE_ITEM_LIST_LIMIT_DEFAULT` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) const MOBILE_ITEM_LIST_LIMIT_DEFAULT: i64 = 50;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOBILE_ITEM_LIST_LIMIT_MAX` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub(crate) const MOBILE_ITEM_LIST_LIMIT_MAX: i64 = 100;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WPS_TASKPANE_ITEM_LIMIT` is never used
[INFO] [stdout]   --> src/lan_sync_core.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) const WPS_TASKPANE_ITEM_LIMIT: i64 = 80;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save_devices` is never used
[INFO] [stdout]    --> src/lan_sync_core.rs:953:19
[INFO] [stdout]     |
[INFO] [stdout] 923 | impl LanRuntimePlatformContext {
[INFO] [stdout]     | ------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 953 |     pub(crate) fn save_devices(
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_gtk_settings_platform_action` is never used
[INFO] [stdout]     --> src/linux_native_host.rs:3359:15
[INFO] [stdout]      |
[INFO] [stdout] 3359 | pub(crate) fn dispatch_gtk_settings_platform_action(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `initial_value` is never read
[INFO] [stdout]     --> src/linux_native_host.rs:2535:9
[INFO] [stdout]      |
[INFO] [stdout] 2533 |     struct NativeSettingsEntryBinding {
[INFO] [stdout]      |            -------------------------- field in this struct
[INFO] [stdout] 2534 |         control_key: &'static str,
[INFO] [stdout] 2535 |         initial_value: String,
[INFO] [stdout]      |         ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `NativeSettingsEntryBinding` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `initial_value` is never read
[INFO] [stdout]     --> src/linux_native_host.rs:2542:9
[INFO] [stdout]      |
[INFO] [stdout] 2540 |     struct NativeSettingsToggleBinding {
[INFO] [stdout]      |            --------------------------- field in this struct
[INFO] [stdout] 2541 |         control_key: &'static str,
[INFO] [stdout] 2542 |         initial_value: bool,
[INFO] [stdout]      |         ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `NativeSettingsToggleBinding` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `autostart_host` and `autostart_host_mut` are never used
[INFO] [stdout]     --> src/macos_app.rs:3038:19
[INFO] [stdout]      |
[INFO] [stdout] 1554 | impl MacosApplicationModel {
[INFO] [stdout]      | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 3038 |     pub(crate) fn autostart_host(&self) -> &MacosAutostartHost {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3042 |     pub(crate) fn autostart_host_mut(&mut self) -> &mut MacosAutostartHost {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `system_pick_file` is never used
[INFO] [stdout]     --> src/macos_app.rs:7538:8
[INFO] [stdout]      |
[INFO] [stdout] 7528 | impl MacosFileDialogHost {
[INFO] [stdout]      | ------------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7538 |     fn system_pick_file(_request: NativeFileDialogRequest<'_>) -> Result<Option<String>, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `system_prompt_text` is never used
[INFO] [stdout]     --> src/macos_app.rs:7582:8
[INFO] [stdout]      |
[INFO] [stdout] 7575 | impl MacosTextInputDialogHost {
[INFO] [stdout]      | ----------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7582 |     fn system_prompt_text(_request: NativeTextInputDialogRequest<'_>) -> Option<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `system_open_edit_text` is never used
[INFO] [stdout]     --> src/macos_app.rs:7639:8
[INFO] [stdout]      |
[INFO] [stdout] 7629 | impl MacosEditTextDialogHost {
[INFO] [stdout]      | ---------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7639 |     fn system_open_edit_text(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prompt_macos_native_text` is never used
[INFO] [stdout]     --> src/macos_app.rs:9623:4
[INFO] [stdout]      |
[INFO] [stdout] 9623 | fn prompt_macos_native_text(_request: NativeTextInputDialogRequest<'_>) -> Option<String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edit_macos_native_text` is never used
[INFO] [stdout]     --> src/macos_app.rs:9682:4
[INFO] [stdout]      |
[INFO] [stdout] 9682 | fn edit_macos_native_text(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dispatch_appkit_vv_paste_for_group` is never used
[INFO] [stdout]     --> src/macos_native_host.rs:3964:15
[INFO] [stdout]      |
[INFO] [stdout] 3964 | pub(crate) fn dispatch_appkit_vv_paste_for_group(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `settings_section_body_rect` is never used
[INFO] [stdout]     --> src/settings_model.rs:3950:8
[INFO] [stdout]      |
[INFO] [stdout] 3950 | pub fn settings_section_body_rect(page: usize, index: usize, padding: i32) -> UiRect {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/settings_model.rs:4143:12
[INFO] [stdout]      |
[INFO] [stdout] 4142 | impl SettingsFormSectionLayout {
[INFO] [stdout]      | ------------------------------ associated function in this implementation
[INFO] [stdout] 4143 |     pub fn new(page: usize, index: usize, label_w: i32) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gregorian_to_days` is never used
[INFO] [stdout]  --> src/time_utils.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) fn gregorian_to_days(y: i32, m: i32, d: i32) -> i64 {
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `days_to_gregorian` is never used
[INFO] [stdout]   --> src/time_utils.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) fn days_to_gregorian(days: i64) -> (i32, i32, i32) {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `days_to_sqlite_date` is never used
[INFO] [stdout]   --> src/time_utils.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) fn days_to_sqlite_date(days: i64) -> String {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unix_secs_to_sqlite_str` is never used
[INFO] [stdout]   --> src/time_utils.rs:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub(crate) fn unix_secs_to_sqlite_str(secs: i64) -> String {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `now_utc_sqlite` is never used
[INFO] [stdout]   --> src/time_utils.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub(crate) fn now_utc_sqlite() -> String {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_created_at_prefix` is never used
[INFO] [stdout]   --> src/time_utils.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn parse_created_at_prefix(created_at: &str) -> Option<(i32, i32, i32, i32, i32)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_created_at_local` is never used
[INFO] [stdout]    --> src/time_utils.rs:108:15
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub(crate) fn format_created_at_local(created_at: &str, fallback: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_local_time_for_image_preview` is never used
[INFO] [stdout]    --> src/time_utils.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub(crate) fn format_local_time_for_image_preview() -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `command_records`, `bridged_event_names`, and `ai_action_names` are never used
[INFO] [stdout]    --> src/zsclip_product_adapter.rs:135:19
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl ZsclipProductAdapter {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub(crate) fn command_records(&self) -> &[ZsclipProductCommandRecord] {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub(crate) fn bridged_event_names(&self) -> &[String] {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub(crate) fn ai_action_names(&self) -> &[&'static str] {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 15s
[INFO] running `Command { std: "docker" "inspect" "aad7a4bcad9e7ec050455ba5db7862e4ee4bef5af6ef7ca7ce49740fcb69931d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aad7a4bcad9e7ec050455ba5db7862e4ee4bef5af6ef7ca7ce49740fcb69931d", kill_on_drop: false }`
[INFO] [stdout] aad7a4bcad9e7ec050455ba5db7862e4ee4bef5af6ef7ca7ce49740fcb69931d
